﻿//
// Created by HONOR on 2024/3/25.
//
# include <stdio.h>

// 隐式转换
//把一个数值范围小的,转换为取值范围大的

// 隐式转化的两条规则
// 规则1: 取值范围小的，和取值范围大的计算，小的会自动提升为打大的，再进行运算

// 规则2:short char 类型的数据再运算的时候，先提升为int,再进行运算


// 取值范围的排序
// char < short < long < long long < float < double

// 什么时候转化？
// 不同的数据类型进行计算、赋值等操作的时候，小的会提升为大的，再进行运算



// 强制转化后
// 如果把取值范围大的转化为取值范围小的，就需要进行强制类型转化
//格式：目标数据类型 变量名 = （目标数据类型）被转换的数据；


// 什么时候进行转换；
// 当取值范围大的给取值范围小的时候,需要进行强制转换

// 强制转换的弊端：
// 容易造成数据错误

//void main(){
//    // 隐式转化
//    int a = 10;
//    double b = 12.3;
//    double c = a + b;
//    printf("%f\n",c);
//    // 强制转化
//    int e = 65536;
//    short i = (short)e;
//    printf("%d",i);
//    // 强制转换
//    // 强制转化需要自己手动书写
//    short s1 = 10;
//    short  s2 =20;
//    short result = (short)(s1+s2);
//    printf("%zu\n",sizeof((short)(s1 + s2)));
//}



// 字符转数字
//’a‘  'A'  '0'


//void main(){
//    // 特别提醒就是进行ascii码转换的时候需要进行对数据a的定义以后再进行ASCII码的转换
//    char a = 'a' ;
//    printf("%d\n",a);  // 97
//    char c  = 97;
//    printf("%c",c);  // a
//}